import request from '@/utils/request'
import { ElMessage } from 'element-plus'

export const userApi = {
  // 获取用户列表
  getUserList(params) {
    return request({
      url: '/api/users/',
      method: 'get',
      params
    })
  },

  // 创建用户
  createUser(data) {
    return request({
      url: '/api/register/',
      method: 'post',
      data
    })
  },

  // 更新用户
  updateUser(id, data) {
    return request({
      url: `/api/user/${id}/update/`,
      method: 'put',
      data
    })
  },

  // 切换用户状态
  toggleUserStatus(id) {
    return request({
      url: `/api/user/${id}/toggle/`,
      method: 'post'
    })
  },

  // 删除用户
  deleteUser(id) {
    return request({
      url: `/api/user/${id}/delete/`,
      method: 'delete'
    })
  },

  // 登录
  login(data) {
    return request({
      url: '/api/login/',
      method: 'post',
      data
    })
  },

  // 登出
  logout(data) {
    return request({
      url: '/api/logout/',
      method: 'post',
      data
    })
  },

  // 刷新token
  refreshToken(data) {
    return request({
      url: '/api/token/refresh/',
      method: 'post',
      data
    })
  },

  // 注册
  register(data) {
    return request({
      url: '/api/register/',
      method: 'post',
      data
    })
  },

  // 获取用户详情
  getUserDetail() {
    return request({
      url: '/api/user/detail/',
      method: 'get',
      headers: {
        'Authorization': `Bearer ${localStorage.getItem('access_token')}`
      }
    })
  },

  // 获取角色列表
  getRoles() {
    return request({
      url: '/api/roles/',
      method: 'get'
    })
  },

  // 创建角色
  createRole(data) {
    return request({
      url: '/api/role/create/',
      method: 'post',
      data
    })
  },

  // 更新角色
  updateRole(id, data) {
    return request({
      url: `/api/role/${id}/update/`,
      method: 'put',
      data
    })
  },

  // 删除角色
  deleteRole(id) {
    return request({
      url: `/api/role/${id}/delete/`,
      method: 'delete'
    })
  },

  // 获取角色详情
  getRoleDetail(id) {
    return request({
      url: `/api/role/${id}/`,
      method: 'get'
    })
  }
} 